// pages/compontnts/noticeItem/lt-noticeListItem.js
const defaultSettings = require('../../../config/defaultSettings')
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    viewList:{
      type:Array,
      value:[]
    },
    list:{
      type:Array,
      value:[]
    },
    groupHeightArr:{
      type:Array,
      value:[]
    },
     //页面数据ID前缀，必须要填写，因为根据这个进行判断数据是否显示
     pageIdPrefix:{
      type:String,
      value:'page'
    },
    //数据类型，根据这个来切换显示内容，因为微信小程序没有插槽作用域，所以暂时用此方法
    listType:{
      type:String,
      value:''
    },
    groupIndex:{
      type:Number,
      value:0,
      observer(val, groupIndex) {
        wx.createIntersectionObserver(this)
        .relativeToViewport({
          /* 这里规定的有效区域为3个屏幕 ,缓存内容为3个屏幕大小*/
          top: 2 * this.data.windowHeight,
          bottom: 2 * this.data.windowHeight,
        })
        .observe(`#${this.data.pageIdPrefix+groupIndex}`, (res) => {
          const newViewList = this.data.viewList;
          const newList = this.data.list[groupIndex];
          if (res.intersectionRatio <= 0) {
            //隐藏
            /* 如果不在有效的视图范围内，那么不需要渲染真实的数据，只需要计算高度，进行占位就可以了。 */
            // console.log('当前分组：',groupIndex,'虚拟节点占位' )
            //计算出每一个ITEM的高度
            const listViewHeightArr = [];
            const listViewItemHeight = this.data.groupHeightArr[groupIndex] / newList.length
            for (let i = 0; i < newList.length; i++) {
              //将显示的数据替换成拥有一个listViewItemHeight 高度的元素，页面根据这个判断是否显示
              listViewHeightArr.push({ listViewItemHeight });
            }
            newViewList[groupIndex] = listViewHeightArr;
          }else{
            // console.log('当前分组：',groupIndex,'显示' )
            //显示
            newViewList[groupIndex]=this.data.list[groupIndex]
          }
          this.setData({viewList: newViewList,})
        })
      }
    }
  },
 
  lifetimes: {
    ready(){
      let that = this
      
      wx.getSystemInfo({
        success: function (res) {
          that.setData({windowHeight: res.windowHeight});
        }
      });
      //保证下拉数据已经构造完毕
      setTimeout(() => {
        that.setData({globalData:getApp().globalData});
      }, 100);
      
    }
  },
  /**
   * 组件的初始数据
   */
  data: {
    windowHeight:0,
    defaultSettings:defaultSettings,
    globalData:{},
    
  },

  /**
   * 组件的方法列表
   */
  methods: {
    onClick(e){
      
    },

  }
})